요구사항 분석

요구사항의 정의

IEEE 정의

  • 어떤 문제를 해결하거나 목적을 달성하기 위해 사용자가 필요로 하는 조건이나 능력이다.

기타 정

  • 시스템이 어떻게 작동해야 하는지에 대한 언급 없이 무엇을 할지를 완전하게 기술해 놓는 것이다. 소프트웨어가 어떻게(How) 구현되는지에 대한 세부사항보다는 고객이 원하는 것이 무엇(What)인가에 초점을 맞춘다.
  • 시스템이 무엇을 해야 하는지 고객, PM, 분석자, 설계자, 개발자 등 모든 이해당사자들이 공통되게 동일한 생각을 가지고 프로젝트를 진행한다는 의미이다.


요구사항의 유형

기능적 요구사항

  • 시스템이 무엇을 수행하는지에 대한 내용을 담고 있는 요구사항
  • 비즈니스 요구사항
  • 사용자 요구사항
  • 비즈니스 규칙 등

비기능적 요구사항

  • 시스템을 기동시키거나 운영하는데 필요한 환경적인 요소들에 대한 요구사항
  • 실행시 고려해야 하는 다양한 제약사항 (법 조항 등)
  • 데이터 처리 용량
  • 보안관련 준수사항
  • 외부 시스템과 연결 등
  • 비기능이 잘못되면 소프트웨어의 기본부터 완전히 뒤집어야 하는 경우가 발생한다.


요구사항의 중요성

요구사항은 소프트웨어 개발이라는 프로젝트에 있어 가이드 역할을 하며, 프로젝트 실패 원인 대부분이 요구사항과 관련이 있다.

요구사항 관리가 어려운 이유

  • 고객이나 사용자들도 그들의 원하는 것을 정확하게 모르는 경우가 많기 때문이다.
  • IT관련 인원들이 요구사항을 서술하는 스타일과 고객의 서술 스타일이 다르기 때문이다.
  • 요구사항은 언제나 불명확하기 때문이다.
  • 요구사항은 다양한 소스로부터 도출되기 때문이다.
  • 요구사항은 단어로 정확하게 표현하기가 쉽지 않기 때문이다.
  • 요구사항은 다른 요건들 및 다른 개발 산출물들과 관련이 많기 때문이다.
  • 요구사항은 변화되기 때문이다.

좋은 요구사항의 특성

  • 검증이 가능해야 한다. 만들어진 시스템을 동작할 때 고객의 요구사항이 만족되었는지 확인할 수 있도록 구체적이어야 한다.
  • 한정된 자원을 감안하여 우선순위가 있어야 한다. 언제까지라는 기간과, 얼마의 금액 한도 안에서라는 비용의 한계를 감안해야 한다.
  • 진행 정도를 확인할 수 있는 상태값을 가져야 한다. 첫번째 특성과 마찬가지로, 소프트웨어 개발 진행정도를 확인할 수 있는 상태값을 가지고 있어야 한다.
  • 전체 프로젝트에 걸쳐서 변경에 대한 관리가 되어야 한다. 요구사항은 전 프로젝트에 걸쳐서 다듬어지고, 구체화되고, 심지어 없어지거나 변경되기 때문에 변경을 대비하여 관리되어야 한다.

요구사항 검증 질문

  • 요구사항이 이해하기 쉽게 정의 되었는가?
  • 요구사항이 정확한가?
  • 요구사항이 고객의 필요를 충족하는가?
  • 요구사항이 애매모호하지 않은가?
  • 요구사항이 정말로 필요한가?


요구공학

요구공학의 정의

  • 요구공학이란 요구 분석 단계에서 행해졌던 요구사항 분석 및 서술뿐 아니라 이들의 추출, 관리, 검증, 유지 등을 포함하여 요구사항에 관계되는 모든 활동과 원칙들에 대한 공학적인 접근이다.
  • 요구사항을 고객들로부터 추출하여 분석한 후, 이를 명세화하고 검증을 거쳐 유지, 보수까지 하는 일련의 모든 공정을 총칭한다.

요구공학의 목적

  • 프로젝트의 이해관계자들 사이에서 소통의 창구를 제공하고 요구사항에 대한 공감대 형성을 지원한다.
  • 업무적 관심사와 문제점을 찾아내어 고객의 정확한 요구와 기대사항을 파악한다.
  • 요구사항이 누락되지 않도록 불필요한 비용 증가를 통제한다.
  • 요구사항을 구조화하여 요구사항이 변경되었을 때 정확히 추적한다.

요구공학의 구성

  • 요구사항 개발

    • 기능 요구사항과 비즈니스 목표를 달성할 수 있는 제품특성을 식별하는 과정이다.
    • 요구사항 도출, 요구사항 분석, 요구사항 명세화, 요구사항 검증
  • 요구사항 관리

    • 고객과 요구사항에 대해 합의하고 이를 유지하며 관리하는 활동이다.
    • 요구사항 협상, 요구사항 베이스라인, 요구사항 변경관리, 요구사항 확인수행
Share